/**
 * Copyright 2011 Joe Choi, All rights reserved.
 */
package tao.data.structure;

/**
 * A FILO data structure
 * 
 * @author Joe Choi
 */
public interface Stack<T> {
	/**
	 * Get the element on the top of Stack but not remove it from Stack
	 */
	public T top();
	
	/**
	 * Push a element on the top of Stack
	 */
	public void push(T element);
	
	/**
	 * Get the element on the top of Stack and remove it from Stack
	 */
	public T pop();
	
	/**
	 * Check whether the Stack is empty or not
	 */
	public boolean isEmpty();
	
	/**
	 * Get the number of elements in Stack
	 */
	public int size();
}
